import axios from 'axios';
import { Message } from 'element-ui';

// import store from "@/store";
// 创建axios实例
const service = axios.create({
  // 在请求地址前面加上baseURL
  baseURL: process.env.VUE_APP_BASE_API,
  // 当发送跨域请求时携带cookie
  // withCredentials: true,
  timeout: 30000,
});

// 请求拦截
service.interceptors.request.use(
  (config) => {
    // 模拟指定请求令牌
    // config.headers["Authorization"] = storage.getToken();

    return config;
  },
  (error) => {
    // 请求错误的统一处理
    console.log(error); // for debug
    return Promise.reject(error);
  }
);
const whitelist = ['/synthesizer/ali'];
// 响应拦截器
service.interceptors.response.use(
  /**
   * 通过判断状态码统一处理响应，根据情况修改
   * 同时也可以通过HTTP状态码判断请求结果
   */
  (response) => {
    if (whitelist.includes(response.config.url)) {
      return response;
    }
    const res = response.data;
    // 如果状态码不是2000则认为有错误
    if (res.code !== 2000) {
      Message.error({
        message: res.msg || res.data || 'Error',
        duration: 1000,
      });
      return Promise.reject(res);
    } else {
      return res;
    }
  },
  (error) => {
    const { statusText } = error.response; // for debug

    Message({
      message: statusText,
      type: 'error',
      duration: 1000,
    });
    return Promise.reject(error.response);
  }
);

export default service;
